在 Django 中,模型是與資料庫進行交互的一種方式。模型是一個類,它包含了定義資料庫表的字段和行為。Django 提供了一個 ORM(Object-Relational Mapping)工具,它允許我們使用 Python 代碼來定義模型,而不需要直接使用 SQL 語句。
ORM 是一種編程技術,ORM 的目的是讓開發者使用 Python 代碼來操作資料庫,而不需要直接使用 SQL 語句。這使得我們可以更容易地與資料庫進行交互,並且可以提高代碼的可讀性和可維護性。
ORM 提供了一個模型類(Model class)來定義資料庫表。每個模型類對應到資料庫中的一個表,每個模型類的屬性對應到表中的一個欄位,我們可以通過定義模型類來定義資料庫表的結構。每個模型類都是 django.db.models.Model
的子類。
from django.db import models
class UserProfile
username = models.CharField(max_length=10)
is_authenticated = models.BooleanField(default=False, help_text='使用者是否有認證')
message = models.TextField(max_length=100, null=True, blank=True)
age = models.IntegerField(default=18)
def __str__(self):
return self.username
UserProfile
的模型類,它包含了四個字段 username
、is_authenticated
、message
和 age
__str__
方法,它返回模型對象的 username
屬性。Django 提供了多種字段類型,用於定義資料庫表中的字段。以下是一些常用的字段類型:
CharField
:字符字段,用於存儲短文本TextField
:文本字段,用於存儲長文本IntegerField
:整數字段,用於存儲整數FloatField
:浮點字段,用於存儲浮點數BooleanField
:布爾字段,用於存儲布爾值DateTimeField
:日期時間字段,用於存儲日期和時間ForeignKey
:外鍵字段,用於定義與其他模型的關係ManyToManyField
:多對多字段,用於定義多對多關係EmailField
:郵件地址字段,用於存儲郵件地址URLField
:URL 地址字段,用於存儲 URL 地址ImageField
:圖片字段,用於存儲圖片文件FileField
:文件字段,用於存儲文件每個字段類型都有一些屬性,用於定義字段的特性。以下是一些常用的字段屬性:
max_length
:指定字段的最大長度default
:指定字段的默認值null
:指定字段是否可以為空blank
:指定字段是否可以為空白choices
:指定字段的選項help_text
:指定字段的幫助文本auto_now_add
:自動添加當前時間auto_now
:自動更新當前時間class UserProfile
username = models.CharField(max_length=10)
is_authenticated = models.BooleanField(default=False, help_text='使用者是否有認證')
message = models.TextField(max_length=100, null=True, blank=True)
age = models.IntegerField(default=18)
username
、is_authenticated
、message
和 age
username
: 是一個 CharField
類型,最大長度為 10is_authenticated
: 是一個 BooleanField
類型,默認值為 False
,並且有一個幫助文本 使用者是否有認證
message
: 是一個 TextField
類型,最大長度為 100,可以為空值age
: 是一個 IntegerField
類型,默認值為 18模型是 Django 中與資料庫進行交互的一種方式,它定義了資料庫表的結構,包括表名、字段、屬性等。Django 的 ORM 提供了一個模型類來定義資料庫表,並且可以通過對模型類的操作來對資料庫進行增刪改查的操作。在定義模型時,我們可以使用多種字段類型和屬性來定義字段的特性,以滿足不同的需求。在下一篇文章中,我們將介紹資料庫介紹、遷移和基本指令。